package br.com.sisgerenciamento.dao.recebimento;

import java.util.ArrayList;
import java.util.Date;

import br.com.sisgerenciamento.dto.recebimento.RecebimentoDTO;
import br.com.sisgerenciamento.dto.recebimento.RelatorioRecebimentoDTO;
import br.com.sisgerenciamento.exceptions.AlterarException;
import br.com.sisgerenciamento.exceptions.ApplicationException;
import br.com.sisgerenciamento.exceptions.InserirException;
import br.com.sisgerenciamento.model.recebimento.RecebimentoVO;

public interface RecebimentoDAOService {
	RecebimentoVO inserir(RecebimentoVO vo) throws InserirException;
	void alterar(RecebimentoVO vo) throws AlterarException;
	RecebimentoVO consultarPorCodigo(Long codigo) throws ApplicationException;
	ArrayList<RecebimentoDTO> consultarRecebimentoPorNomeCliente(String nomeCliente) throws ApplicationException;
	ArrayList<RecebimentoDTO> consultarRecebimentoPorPedido(Long codigoPedido) throws ApplicationException;
	public ArrayList<RelatorioRecebimentoDTO> consultarRecebimentosPagos(Date dataInicial, Date dataFinal) throws ApplicationException;
	public ArrayList<RelatorioRecebimentoDTO> consultarRecebimentosPendentes(Long codigo) throws ApplicationException;
	public ArrayList<RecebimentoVO> listarPendentes() throws ApplicationException ;
}
